cmake_minimum_required(VERSION 3.30)
project(HiEasyX)

include_directories(./)

set(CMAKE_CXX_STANDARD 20)

set(HiEasyXSrc include/impl/hex_impl.h
        include/hex_geo.h
        include/font/hex_font.h
        include/impl/EasyX/hex_impl_easyx.h
        source/impl/EasyX/hex_impl_easyx.cpp
        include/hex_string.h
        include/hex.h
        source/hex.cpp
        source/hex_window.cpp
        include/hex_window.h
        include/hex_button.h
        source/hex_button.cpp
        include/hex_text.h
        source/hex_text.cpp
        include/hex_canvas.h
        source/hex_canvas.cpp
        include/hex_slider.h
        source/hex_slider.cpp
        include/hex_checkbox.h
        source/hex_checkbox.cpp
        include/hex_checkbox_group.h
        source/hex_checkbox_group.cpp
        include/hex_scroller.h
        source/hex_scroller.cpp
        include/hex_image.h
        source/hex_image.cpp
        include/hex_dropdown.h
        source/hex_dropdown.cpp
        include/hex_text_input.h
        source/hex_text_input.cpp
        include/impl/EasyX/hex_easyx.h
        source/impl/EasyX/hex_easyx.cpp)

add_library(HiEasyXLib ${HiEasyXSrc})

add_executable(example_hello_world example/EasyX/HelloWorld.cpp)
target_link_libraries(example_hello_world HiEasyXLib)

add_executable(example_dashboard example/EasyX/Dashboard.cpp)
target_link_libraries(example_dashboard HiEasyXLib)

add_executable(example_showoff example/EasyX/ShowOff.cpp)
target_link_libraries(example_showoff HiEasyXLib)

add_executable(example_button example/EasyX/Button.cpp)
target_link_libraries(example_button HiEasyXLib)

add_executable(example_canvas example/EasyX/Canvas.cpp)
target_link_libraries(example_canvas HiEasyXLib)

add_executable(example_checkbox example/EasyX/Checkbox.cpp)
target_link_libraries(example_checkbox HiEasyXLib)

add_executable(example_checkbox_group example/EasyX/CheckboxGroup.cpp)
target_link_libraries(example_checkbox_group HiEasyXLib)

add_executable(example_dropdown example/EasyX/Dropdown.cpp)
target_link_libraries(example_dropdown HiEasyXLib)

add_executable(example_image example/EasyX/Image.cpp)
target_link_libraries(example_image HiEasyXLib)

add_executable(example_scroller example/EasyX/Scroller.cpp)
target_link_libraries(example_scroller HiEasyXLib)

add_executable(example_slider example/EasyX/Slider.cpp)
target_link_libraries(example_slider HiEasyXLib)

add_executable(example_text example/EasyX/Text.cpp)
target_link_libraries(example_text HiEasyXLib)

add_executable(example_text_input example/EasyX/TextInput.cpp)
target_link_libraries(example_text_input HiEasyXLib)